package cn.hgj.enums;

/**
 * 订单状态转换事件枚举
 * 用于触发订单状态机的状态转换
 */
public enum OrderEvent {
    /**
     * 创建订单事件
     * 触发状态：INITIALIZED → PAY_PENDING
     */
    CREATE_ORDER,

    /**
     * 支付成功事件
     * 触发状态：PAY_PENDING → PAY_SUCCESS
     */
    PAY_SUCCESS,

    /**
     * 支付失败事件
     * 触发状态：PAY_PENDING → CANCELED
     */
    PAY_FAILED,

    /**
     * 开始处理事件
     * 触发状态：PAY_SUCCESS → PROCESSING
     */
    START_PROCESSING,

    /**
     * 订单完成事件
     * 触发状态：PROCESSING → COMPLETED
     */
    COMPLETE,

    /**
     * 系统超时事件（可选）
     * 触发状态：PAY_PENDING → CANCELED
     */
    SYSTEM_TIMEOUT,

    /**
     * 用户取消事件（可选）
     * 触发状态：PAY_PENDING → CANCELED
     */
    USER_CANCEL
}
